package trastienda.bean;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import trastienda.excepcion.DAOExcepcion;
import trastienda.modelo.Usuario;
import trastienda.negocio.GestionUsuarios;

public class UsuarioBean {
	private String IDusuario;
	
	
	public String getIDusuario() {
		return IDusuario;
	}

	public void setIDusuario(String iDusuario) {
		IDusuario = iDusuario;
	}

	public String buscarUsuario(){
		ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
		HttpServletRequest request = (HttpServletRequest)context.getRequest();
		
		if(noHayUsuario()){
			request.setAttribute("msg_error", "Ingrese id del usuario");
			return "error";
		}else{
			
			GestionUsuarios negocio = new GestionUsuarios();
			Usuario us = null;
			
			try {
				us = negocio.obtener(IDusuario);
				
				if(us != null){
					HttpSession session = (HttpSession) context.getSession(true);
					session.setAttribute("usuario", us);
					System.out.println("Nombre: "+us.getNombres());
					return "encontrado";
				}else{
					request.setAttribute("msg_error", "El usuario no existe");
					return "error";
				}
				
			} catch (DAOExcepcion e) {
				request.setAttribute("msg_error", "A ocurrido un error en la consulta");
				return "error";
			}
			
		}
	}
	
	public String editarUsuario(){
		ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
		HttpServletRequest request = (HttpServletRequest)context.getRequest();
		HttpSession session = (HttpSession) context.getSession(true);
		
		Usuario u = (Usuario) session.getAttribute("usuario");
		GestionUsuarios negocio = new GestionUsuarios();
		
		try {
			negocio.actualizarUsuario(u);
			return "usuario_buscar";
		} catch (DAOExcepcion e) {
			request.setAttribute("msg_error", "No se pudo actualizar");
			return "error";
		}
		

	}
	
	public String eliminarUsuario(){
		ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
		HttpServletRequest request = (HttpServletRequest)context.getRequest();
		HttpSession session = (HttpSession) context.getSession(true);
		
		Usuario u = (Usuario) session.getAttribute("usuario");
		GestionUsuarios negocio = new GestionUsuarios();
		
		try {
			negocio.eliminarUsuario(u.getIdUsuario());
			return "usuario_buscar";
		} catch (DAOExcepcion e) {
			request.setAttribute("msg_error", "No se pudo eliminar");
			return "error";
		}
		
	}
	
	public boolean noHayUsuario(){
		if(IDusuario.trim().isEmpty()){
			return true;
		}else{
			return false;
		}
	}

	public String buscar(){
		System.out.println("UsuarioBean: buscar()");
		return "buscar";
	}
	
}
